<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>

    </style>
</head>
<body>

</body>
<script>
    // 1. 编写一个函数，计算两个数字的和／差／积／商／余
    // - 要求：使用传参的方式
    function count(a,operator,b){
        switch(operator){
            case "+":
                return a+b;break;
            case "-":
                return a-b;break;
            case "*":
                return a*b;break;
            case "/":
                return a/b;break;
            case "%":
                return a%b;break;
        }

    }
    console.log(count(6,"+",4));
    console.log(count(6,"-",4));
    console.log(count(6,"*",4));
    console.log(count(6,"/",4));
    console.log(count(6,"%",4));

    // 2、 编写一个函数，计算三个不同数字的大小，按从大到小的顺序打印
    function sort(a,b,c){
        if(a>b&&a>c){
            if(b>c){
                console.log(a,b,c)
            }else{console.log(a,c,b)}
        }else if(b>a&&b>c){
            if(a>c){
                console.log(b,a,c)
            }else{console.log(b,c,a)}
        }else if(c>a&&c>b){
            if(a>b){console.log(c,a,b)}
            else{console.log(c,b,a)}
        }
    }
    sort(4,8,2);
    sort(1673,8,2467);
    sort(41,8,25);

    // 3、使用递归解决兔子问题
        // 1,1,2,3,5,8,13,21...
        // fn(1)=1
        // fn(2)=1
        // fn(n)=fn(n-1)+fn(n-2)
    function fn(n){
        if(n === 1 || n === 2){
            return 1;
        }
        return fn(n-1) + fn(n-2);
    }
    console.log(fn(7));

    // 4、使用递归法实现1~n的和
    function add(n){
        if(n===1){
            return 1;
        }else{
            return add(n-1)+n;
        }
    }
    console.log(add(100))
    // 【注】递归的方法
        // 1.首先找临界值
        // 2.找这一次和上一次的关系
        // 3.假设当前函数已经可以使用，调用自身计算上一次
</script>
</html>